On this site we present our prototype of a novel type of navigation systems. In order to find relevant destinations ordinary systems access a static local database about places of interest. Our system, in contrast, queries the Web of data.

In the following we give a brief introduction to the Web of data and describe our navigation system.

1. The Web of Data

In addition to documents for human consumption a huge amount of data can be accessed on the Web. The widely accepted format for data on the Web is the Resource Description Framework (RDF). RDF enables computers to automatically process data from various sources, regardless of the kind of data or the used data schema. Moreover, data from different sources can be combined automatically. To discover relevant data computers can follow links between different datasets in a similar manner as humans follow links between Web documents. Hence, the idea of interlinking datasets enables a Web of data.

To specify schemas for RDF data experts can use RDF-based languages with precisely defined semantics. Due to these definitions the data on the Web gets a machine-processable meaning and the Web of data can be understood as a single, global information space consisting of interlinked RDF data.

2. Utilizing Data from the Web for Navigation Systems

Navigation System Scenario 2nd Step
Figure 1. The navigation system discovers data about a bistro.

Navigation systems usually calculate the route to a location specified by an address or geographic coordinates. Aside from addresses or coordinates, smart navigation systems permit users to specify destinations based on certain properties such as the type of a building. For instance, a traveler in a foreign city wants to eat at a restaurant. Since she is unfamiliar with the area she does not know any restaurants nearby. However, she uses her navigation system: after specifying "restaurant" as the desired destination type the system finds a route to a restaurant close to her current location.

The main idea of our navigation system is the utilization of the Web of data as illustrated by the following scenario. In order to discover relevant destinations our system obtains and evaluates Web data that has a machine-processable meaning. Queried for a restaurant, our system may, for instance, find data about Freddy's Place, a bistro nearby (cf. Figure 1). The discovered dataset does not explicitly classify Freddy's Place as a restaurant, but, as a bistro. Hence, the discovered information does not seem to be of any use because the traveler asked for restaurants, not for bistros. Fortunately, the dataset contains a link to another data source that provides further information about bistros. Following the link, the system learns that bistros are a special kind of restaurants. Thanks to the machine-processable meaning of the data, the navigation system can infer that Freddy's Place is a (special kind of) restaurant. Consequently, the system should consider Freddy's Place as a potential destination and calculate a route there (cf. Figure 2).

Navigation System Scenario 3rd Step
Figure 2. The navigation system follows links to learn more about bistros. Thanks to the additional information the bistro becomes a potential destination.

As can be seen from the example, our navigation system browses the Web of data to discover relevant destinations and to collect data about them. Based on this data, the system decides for the most relevant (i.e. the closest) locations of the discovered destinations. The advantages of using data from the Web are the following:

3. Architecture of our Navigation System

The current prototype of our navigation system consists of a back-end component and a Web application. The back-end discovers relevant destinations. The Web application uses the Google maps API to calculate and visualize the routes.

3.1 The Back-End

To enable navigation systems to utilize the Web of data as described in the aforementioned scenario we develop a back-end component. This component discovers relevant destinations based on user-specified properties. The only property currently supported by our prototype is the type of a destination. These types are represented by entities defined as classes in existing datasets such as the yago:restaurant class in the DBpedia dataset. An actual destination is an instance of such a class. In order to discover relevant destinations the back-end executes two main steps; it discovers relevant classes and determines the most suitable instances of these classes. Relevant classes are the user-specified classes as well as all their equivalent classes and subclasses. Our system recursively evaluates rdfs:subClassOf and owl:equivalentClass statements to find relevant classes.

The back-end uses the Semantic Web Client Library to discover, obtain, and query data from the Web. The library retrieves Web data by dereferencing HTTP URIs, by following rdfs:seeAlso links, and by querying the Sindice search engine. Retrieved data is added to a local, in-memory store which enables applications to execute simple triple pattern queries, called find(SPO) queries, and SPARQL queries over all discovered datasets.

3.2 The Web Application

To demonstrate the use of our back-end in a navigation system we provide a Web application. The application consists of a RESTful Web service that wraps the back-end and an interactive website that accesses the Web service using AJAX technologies. The website enables users to specify their current location and the type of the destination. With this information, the website accesses the Web service which, for each request, issues a query at the back-end. The result of such a query is provided by the Web service as an RDF document. The website uses the result data as input for the Google maps API. We use this API to calculate and visualize routes to the identified destinations.

Even if the interactive website of our current prototype is based on the Google maps API it can easily be reimplemented for another provider of maps and routing services. Moreover, it is possible to integrate the back-end component in a navigation system application directly.